Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mention that servers may use ERR_NOSUCHCHANNEL instead of ERR_CHANOPRIVSNEEDED to conceal +s channels #247

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

progval
Copy link
Member

@progval progval commented Feb 20, 2025

This matches InspIRCd's behavior, which Ergo is considering too.

As far as I can tell, no one else implements it this way, so this is not phrased as a requirement.

…IVSNEEDED to conceal +s channels

This matches InspIRCd's behavior, which Ergo is considering too.
As far as I can tell, no one else implements it this way, so this is not
phrased as a requirement.
@@ -149,6 +149,9 @@ This channel mode controls whether the channel is 'secret', and does not have an

A channel that is set to secret will not show up in responses to the {% message LIST %} or {% message NAMES %} command unless the client sending the command is joined to the channel. Likewise, secret channels will not show up in the {% numeric RPL_WHOISCHANNELS %} numeric unless the user the numeric is being sent to is joined to that channel.

Additionally, servers may return {% numeric ERR_NOSUCHCHANNEL %} instead of {% numeric ERR_CHANOPRIVSNEEDED %} to channel commands ({% message MODE %}, {% message TOPIC %}, {% message PRIVMSG %}, {% message NOTICE %}) to a secret channel from a user not on that channel.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TAGMSG too --- any others?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idk, TAGMSG isn't mentioned elsewhere in the spec, and it seems obvious that TAGMSG should behave like PRIVMSG and NOTICE

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds like we need a section covering TAGMSG :-)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it a goal to import all IRCv3 specs into modern? I see some are mentioned but it's a bit random.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having two copies of the same documentation will inevitably go out of sync. I suggest to stick with referencing the (coherent & unambiguous) docs already on the ircv3 site.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jwheare my intention has usually been to update the base doc (e.g. syntax, formats, etc) wherever needed to explain the basics, then link off to v3 for the full story. E.g. in the Capability Negotiation section Modern gives an overview, but then says to refer to the actual spec for details:
image
image

Copy link
Member

@DanielOaks DanielOaks Feb 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On which ones to mention, I've always thought about it like "optimistic real use", like whether Modern mentions something or not depends on whether it's used in the real world by software today, with a lean towards being optimistic about v3 stuff.

My thought was always while it'd be great to include docs on e.g. most of the unambiguous stuff from 'defs' that'd just be... so much work... so that's why I stuck to the core-feeling things for the base Modern doc.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For PRIVMSG/NOTICE i'd stick with the documented 401 NOSUCHNICK, which commonly has the text "No such nick/channel". Note that 401 is already listed as a response to these commands in both rfcs (and consequently modern-irc as well), whereas 403 is not.

Both TOPIC and MODE already list 403 NOSUCHCHANNEL as a response on modern-irc.

So except for the suggestion, i'm ok.

@slingamn
Copy link
Contributor

I missed this earlier, but I would suggest mentioning 442 ERR_NOTONCHANNEL as an alternative (i.e. sent in both cases, whether the channel exists or not), since it is more "truthful" ;-)

@progval
Copy link
Member Author

progval commented Feb 21, 2025

done

@tommyrot
Copy link
Contributor

The text is confusing, are you suggesting ERR_NOSUCHCHANNEL and ERR_NOTONCHANNEL to be valid responses to PRIVMSG and NOTICE?
Below are the valid responses from the RFCs. It seems you want to add two? I haven't seen implementations use the aforementioned ones.
@slingamn if Ergo is indeed the only one deviating, can't it use one of the listed responses instead (e.g. ERR_NOSUCHNICK)? It's becoming the wild west of responses which is very confusing.

   Numeric Replies:

           ERR_NORECIPIENT                 ERR_NOTEXTTOSEND
           ERR_CANNOTSENDTOCHAN            ERR_NOTOPLEVEL
           ERR_WILDTOPLEVEL                ERR_TOOMANYTARGETS
           ERR_NOSUCHNICK
           RPL_AWAY

@progval
Copy link
Member Author

progval commented Feb 21, 2025

that's not my intent, I need a better way to phrase this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants